מבוא לתכנות ב- JAVA מעבדה 4

Similar documents
מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

Engineering Programming A

תרגול 6 רקורסיה ותכנות מונחה עצמים

קורס תכנות בשיעור הקודם למדנו על רקורסיה שיעור שישי: מערכים פונקציה רקורסיבית שאלה חישוב נוסחאות רקורסיביות בשפת C

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

מבוא לתכנות ב- JAVA מעבדה 2

תרגול מספר 3: מערכים

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

מבוא לתכנות ב- JAVA תרגול 7

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

מבוא לתכנות ב- JAVA תרגול 6

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

Practical Session - Heap

מבוא לתכנות ב- JAVA תרגול 5. Ipc161- practical session 5

קורס תכנות רשימה מקושרת דוגמה: חיפוש מעבר על רשימה דוגמא: שחרור רשימה מקושרת דוגמא: הוספת אברים שלא בהתחלה

תוכנה 1 סמסטר א' תשע"א

Programming in C תרגול 8

Programming for Engineers in Python

Programming for Engineers in Python

שאלה 1 מהו הפלט של התוכנית הבאה:

Practical Session No. 14 Topological sort,amortized Analysis

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת

תרגול 3 מערכים ופונקציות

תור שימושים בעולם התוכנה

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

תרגול 3 מערכים ופונקציות

קורס תכנות שיעור שישי: מחרוזות, מצביעים

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת

תזכורת: עץבינארי מבוא למדעי המחשב הרצאה 24: עצי חיפוש בינאריים

תוכנה 1 תרגול 2: מערכים ומבני בקרה

הנכות 1 םוכיס לוגרת 13 1

תוכנה 1. תרגול 1: סביבת העבודה ומבוא ל- Java

מבוא לתכנות ב- JAVA מעבדה 3. Ipc161-lab3

עמוד 1 (תאריך ( âùéä ער äìàù בכל השאלות ניתן להניח שהקלט תקין. 100 íåëñ חורף :

הפלט אחרי הביצוע של ההוראה :what3(root)

הנכות 1 םוכיס לוגרת 13 1

תרגול 7 רשימות משורשרות, רקורסיית

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13

מבוא למדעי המחשב תירגול 2: מבוא למדעי המחשב מ' - תירגול 2

תרגילים ופתרונות בשפת - C הסתעפויות

Amortized Analysis, Union-Find,

מבוא לתכנות תוכנית שעור מס. 1 1 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.

מבוא למדעי המחשב תירגול 3:

פתרון מוצע לבחינה בשפת C של מה"ט מועד אביב תשע"ז, פברואר 2017 מחבר: מר עסאקלה שאדי, מכללת אורט בראודה

מבוא למדעי המחשב תרגול 5: לולאות ומערכים

מבוא למדעי המחשב 2018 תרגול 7

Algorithms. Intro2CS week 5

רזח יליגרתו םי יראני ב ם

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }

Exams questions examples

הנכות 1 םוכיס לוגרת 14 1

מדעי המחשב 2 יחידות לימוד פתרון בחינת הבגרות פרק א. I x > a. פתרון 2: משפט switch

Chapter 11.2 Linked lists ( )

Computer Programming A תרגול 9

מבוא למדעי המחשב תרגול 13: עצים בינאריים

תוכנה 1 * לא בהכרח בסדר הזה

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

שאלה 1, סעיף ב )11 נק'(

תוכנה 1. תרגול מס' 3 עבודה עם מחרוזות )Strings( מתודות )Methods( העברת פרמטרים

חוברת תרגילים לתרגול יסודות התכנות

Introduction to Programming in C תרגול 8

פתרון מוצע לבחינת מה"ט ב_שפת c מועד אביב תשע"ח, פברואר 8102 מחבר: מר שייקה בילו, מכללת אורט רחובות

קורס תכנות שיעור שני: שימוש במשתנים,

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות

Computer Programming Summer 2017

תוכנה 1 * לא בהכרח בסדר הזה

מבני נתונים תכנות מונחה עצמים מבני נתונים. מחלקות אבסטרקטיות חבילות packages סיכום הרשאות גישה wrappers ADT מערך דינמי מחסנית

הנכות 1 םוכיס לוגרת 13 1

תוכנה 1 בשפת Java נושאים שונים בהורשה רובי בוים ומתי שמרת בית הספר למדעי המחשב אוניברסיטת תל אביב

סטודנטים יקרים הפתרונות מוגשים בסרטוני וידאו המלווים בהסבר קולי, כך שאתם רואים את התהליכים בצורה מובנית, שיטתית ופשוטה, ממש כפי שנעשה בשיעור פרטי.

תכנות מונחה עצמים משחקים תשע"ו

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Loop through Arrays. Array Creation and Initialization

רשימות דילוגים Skip Lists

מבוא לשפת סי סוגי לולאות שבוע שעבר... תוכנייה. לולאת while דוגמא: קליטת מספר חיובי ד'/כסלו/תשע "ב. משפטי if משפטי switch סוגי לולאות בשפת C דוגמאות

תוכנה 1 מערכים. Array Creation and Initialization. Array Declaration. Array Creation and Initialization. Loop through Arrays

תוכנה 1 3 תרגול מס' מערכים ומבני בקרה

ASP.Net Web API.

מצליחה. 1. int fork-bomb() 2. { 3. fork(); 4. fork() && fork() fork(); 5. fork(); printf("bla\n"); 8. return 0; 9. }

שים לב! אין לכתוב בשוליים. השוליים יחתכו לצורך סריקת המבחן.

מבוא למדעי המחשב תרגול 10 Comparator, Comparable, Binary Trees

עבודה עם STL. )Dmitry Korolev

עצים. מבני נתונים Iterators רשימות מקושרות עצים "רגילות" רקורסיביות

Computer Programming תרגול 6 פונקציות

ספרית התבניות הסטנדרטית (STL) כתיבת אלגוריתמים גנריים מצביעים חכמים. .vector. list iterator נכיר תחילה את האוסף הפשוט ביותר בספריה

לאחר הרצת התכנית יופיע בחלון הoutput הפלט הבא: run: ******************************* *****Welcome to Java!***** *******************************

קורס תכנות כתובות בזיכרון כתובות בזכרון מצביעים וכתובות מצביעים וכתובות שיעור שביעי: מבנים, הקצאת זיכרון דינאמית האופרטור &

Tutorial 11. Exercise 1: CSC111 Computer Programming I. A. Write a code snippet to define the following arrays:

גיליון תשובות מספר נבחן:

מבוא לתכנות מערכות מבחן מועד א' סמסטר חורף

תרגילים ופתרונות בשפת C

Problems with simple variables

Problems with simple variables

Tutorial 10. Introduction to C++ שימו

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h>

ב ה צ ל ח ה! אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ה תשרי תשע"ח 15/10/17 שמות המורים: ציון סיקסיק מיועד לתלמידי : א'

Transcription:

מבוא לתכנות ב- JAVA מעבדה 4

מה בתרגול מערכים מחרוזות

מערך חד מימדי מערך הוא מבנה המחזיק סדרה של איברים מאותו טיפוס גודל המערך הוא קבוע )נקבע בעת יצירת המערך( הגישה לכל איבר היא באמצעות אינדקס

למה לי מערך? כאשר יש צורך לשמור מספר גדול של משתנים מאותו סוג מבנה מאורגן המאגד בתוכו קבוצה גדולה של ערכים שניתן לעבור עליהם באופן שיטתי

יצירת מערך וגישה לאיבריו יצירת מערך בגודל 10 שאיבריו מטיפוס : int int[] arrayofints = new int[10]; מערך בגודל 10 סוגריים מרובעים מציינים שאנו מגדירים מערך הערה: כאשר מגדירים מערך, כל הערכים במערך יאותחלו לפי ערך ברירת מחדל שמוגדר ב- java )לדוגמא עבור int כל הערכים במערך יהיו 0 בהתחלה( דוגמא לפקודות עם פנייה לאיברים במערך: arrayofints[0] = 5; //set element at index 0 to be 5 int num = arrayofints[3];

פעולות נוספות int[] arr = {1,1,2,3,5,8; תחביר מקוצר ליצירת מערך + אתחול: 1,1,2,3,5,8 מגדיר מערך בגודל 6 עם האיברים 1 1 2 3 5 8 משתנה פנימי המציין את גודל המערך System.out.println(arr.length);

שגיאה נפוצה בעבודה עם מערכים java.lang.arrayindexoutofboundsexception זוהי שגיאת זמן ריצה שנובעת מכך שבקוד שלכם ניסיתם לפנות לאיבר במערך עם אינדקס שלא נמצא בתחום. דוגמא לקוד שייגרום לשגיאה זו: int[] arr = new int[6];... System.out.println(arr[6]);

דוגמא השוואה של מערכים כאשר נרצה לבדוק אם שתי מערכים שווים לא נוכל להשוות ביניהם בעזרת == נצטרך לבדוק אם האיברים בתוך המערך שווים.

דוגמא השוואה של מערכים public static void main(string[] args){ int[] a = { ; int[] b = { ; boolean areequal = (a.length == b.length); for(int i = 0; areequal && i < a.length; i++){ if (a[i]!= b[i]){ areequal = false; { System.out.println(areEqual);

תרגיל public static void main(string[] args){ int[] arr = new int[6]; for (int i = 0; i < arr.length; i++){ if (i < 2){ arr[i] = 1; else{ arr[i] = arr[i-1] + arr[i-2]; System.out.print(arr[i] + " "); א. מה יודפס? 1 2 3 4 5 6 0 1 1 2 3 5 1 1 2 3 5 8 1 1 1 2 3 5 ב. ג. ד.

תרגיל כתבו תוכנית שמגדירה מערך של מספרים שלמים בגודל 10 וקולטת לתוכו ערכים. התוכנית תחשב ותדפיס את סכום איברי המערך, האיבר המקסימלי והאיבר המינימלי במערך

תבנית לפתרון public static void main(string[] args){ int[] arrofints = new int[10]; Scanner sc = new Scanner(System.in); int sum = 0; int max,min; // gets input System.out.println("Please enter 10 numbers"); for (int i = 0; i < arrofints.length; i++){ arrofints[i] = sc.nextint(); //computes the sum,max,min of the elements in the array השלימו את הקוד כאן System.out.println("(sum,min,max) = (" +sum+ ", +min+ "," +max+ ")");

פתרון public static void main(string[] args){ int[] arrofints = new int[10]; Scanner sc = new Scanner(System.in); int sum = 0; int max,min; // gets input System.out.println("Please enter 10 numbers"); for (int i = 0; i < arrofints.length; i++){ arrofints[i] = sc.nextint(); //computes the sum,max,min of the elements in the array min = arrofints[0]; max = arrofints[0]; for(int i=0; i < arrofints.length; i++){ if (min > arrofints[i]){ min = arrofints[i]; if (max < arrofints[i]){ max = arrofints[i]; sum += arrofints[i]; System.out.println("(sum,min,max) = (" +sum+ ", +min+ "," +max+ ")");

תרגיל אינדקס אמצעי במערך הגדרה: אינדקס אמצעי במערך הוא תא אשר סכום האיברים במערך עד אליו וכולל שווה לסכום האיברים במערך הנמצאים הלאה ממנו. כתבו תוכנית הקולטת 10 מספרים שלמים מהמשתמש לתוך מערך ובודקת האם קיים אינדקס אמצעי במערך. התוכנית תדפיס את האינדקס האמצעי במידה ויש כזה. דוגמא: הוא 3 עבור המערך [3-,1-,1,2,4,6,10,3,2,2] האינדקס האמצעי

פתרון public static void main(string[] args){ int[] arr = new int[10]; Scanner sc = new Scanner(System.in); int sum = 0; int partialsum = 0; boolean foundmiddleindex = false; for(int i = 0; i < arr.length; i++){ arr[i] = sc.nextint(); sum += arr[i]; partialsum = 0; for(int i = 0; i < arr.length &&!foundmiddleindex; i++){ partialsum += arr[i]; if (sum - partialsum == partialsum){ System.out.println("middle index is " + i); foundmiddleindex = true;

תרגיל- תת מערך עם סכום מקסימלי בהינתן מערך של מספרים שלמים עליכם לכתוב תוכנית שמוצאת את הסכום המקסימלי של תת מערך שלו )רצף של תאים במערך(. השלימו את הקוד כך שיודפס הסכום המקסימלי. דוגמא: עבור המערך : [5,4-,1,2,1-,3,4-,2,1-] תת המערך עם הסכום המקסימלי הוא [1,2,1-,4] וסכומו 6. public static void main(string[] args) { int[] arr = ; //assume that arr is already initialized with values //Fill here the code System.out.println(maxSubArraySum);

רעיון לפתרון נסכום כל תת מערך תוך שימוש בשני אינדקסים לציון נקודת ההתחלה והסיום של כל תת מערך שאנו סוכמים ונעדכן את המקסימום במידת הצורך קיים פתרון יעיל יותר שמוצא את הסכום בזמן לינארי -2 1-3 4-1 2 1-5 4

פתרון public static void main(string[] args){ int arr[] = {-2,1,-3,4,-1,2,1,-5,4; int maxsubarraysum = arr[0]; int currentsum; for(int i = 0; i < arr.length; i++){ currentsum = 0; for(int j = i; j < arr.length; j++){ currentsum += arr[j]; if (currentsum > maxsubarraysum){ maxsubarraysum = currentsum; System.out.println(maxSubArraySum);

מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות על מחרוזות

פעולות על מחרוזות יצירת מחרוזת: String str = new String(); String str2 = new String("This is a sequence of chars"); String str3 = "abcd"; פעולות: אתחול המחרוזת length() מחזיר את אורך המחרוזת charat(i) מחזיר את התו במקום ה- i במחרוזת )התו הראשון נמא באינדקס 0 ) j כולל )לא j ועד i מחזיר את תת המחרוזת החל מאינדקס substring(i,j) -substring(i) מחזיר את תת המחרוזת החל מאינדקס i ועד סוף המחרוזת other) equals(string האם 2 מחרוזות שוות operator+ - שרשור מחרוזות

דוגמא מה יודפס? String str = ""; for (char i='a' ; i <= 'z' ; i++){ str = str + i; System.out.println(str.charAt(0)); System.out.println(str.length()); System.out.println(str.substring(7, 10)); System.out.println(str); א. a 26 hij abcdefghijklmnopqrstuvwxyz ב. שגיאה ג. a 27 ghi abcdefghijklmnopqrstuvwxyz

תרגיל מחרוזת בסדר הפוך str הדפסת מחרוזת בסדר הפוך השלימו את הקוד כך שהמחרוזת strrev תכיל את המחרוזת בסדר הפוך. לדוגמא: אם Hello str = אזי olleh strrev = Scanner sc = new Scanner(System.in); String str = sc.next(); //read a string String strrev =""; //Fill here the code System.out.println(strRev);

תרגיל מחרוזת בסדר הפוך פתרון Scanner sc = new Scanner(System.in); String str = sc.next(); //read a string String strrev =""; for (int i = str.length()-1; i >= 0; i--){ strrev += str.charat(i); System.out.println(strRev);